{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "https://mp.weixin.qq.com/s?__biz=MzI0NTQ1NDc4Nw==&mid=2247485387&idx=1&sn=e61dfcfa61ec24142f42538b608c71be&chksm=e94f0567de388c71cc6ac5235582e5004c04c047d379a12b79d5b01e293a194944ecc03e8715&scene=21#wechat_redirect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "文件夹\"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\" 将被用来存储语料和临时性的字典\n"
     ]
    }
   ],
   "source": [
    "\n",
    "import os\n",
    "import tempfile\n",
    "from pprint import pprint\n",
    "import logging\n",
    "logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)\n",
    "TEMP_FOLDER = tempfile.gettempdir()\n",
    "print('文件夹\"{}\" 将被用来存储语料和临时性的字典'.format(TEMP_FOLDER))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "\n",
    "from gensim import corpora, models, similarities\n",
    "from collections import defaultdict\n",
    "from pprint import pprint  #使打印的格式更齐整\n",
    "import jieba"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n",
      "2020-11-10 20:59:45,166 : DEBUG : Building prefix dict from the default dictionary ...\n",
      "Loading model from cache C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\jieba.cache\n",
      "2020-11-10 20:59:45,173 : DEBUG : Loading model from cache C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\jieba.cache\n",
      "Loading model cost 1.664 seconds.\n",
      "2020-11-10 20:59:46,837 : DEBUG : Loading model cost 1.664 seconds.\n",
      "Prefix dict has been built successfully.\n",
      "2020-11-10 20:59:46,840 : DEBUG : Prefix dict has been built successfully.\n"
     ]
    }
   ],
   "source": [
    "\n",
    "#对特定长词进行控制，防止被分错词，影响后续的分析效果\n",
    "jieba.add_word('微信')      \n",
    "jieba.add_word('文本挖掘')   \n",
    "jieba.add_word('增长黑客')   \n",
    "jieba.add_word('小白')   \n",
    "jieba.add_word('大数据') \n",
    "\n",
    "\n",
    "docs = [\n",
    "'数据挖掘实操｜用文本挖掘剖析近5万首《全唐诗》',\n",
    "'以虎嗅网4W+文章的文本挖掘为例，展现数据分析的一整套流程',\n",
    "'干货｜作为一个合格的“增长黑客”，你还得重视外部数据的分析！',\n",
    "'文本挖掘从小白到精通（二）---语料库和词向量空间',\n",
    "'文本挖掘从小白到精通（三）---主题模型和文本数据转换',\n",
    "'文本挖掘从小白到精通（一）---语料、向量空间和模型的概念',\n",
    "'以《大秦帝国之崛起》为例，来谈大数据舆情分析和文本挖掘',\n",
    "'文本分类算法集锦，从小白到大牛，附代码注释和训练语料',\n",
    "'Social Listening和传统市场调研的关系是怎样的？',\n",
    "'【新媒体运营实操】如何做出一个精美的个性化词云'\n",
    "'以哈尔滨冰雪大世界旅游的传播效应为例，谈数据新闻可视化的“魅惑”',\n",
    "'万字干货｜10款数据分析“工具”，助你成为新媒体运营领域的“增长黑客”',\n",
    "'如何用数据分析，搞定新媒体运营的定位和内容初始化？',\n",
    "'当数据分析遭遇心理动力学：用户深层次的情感需求浮出水面',\n",
    "'揭开微博转发传播的规律：以“人民日报”发布的G20文艺晚会微博为例',\n",
    "'数据运营实操 | 如何运用数据分析对某个试运营项目进行“无死角”的复盘？',\n",
    "'如何利用微信后台数据优化微信运营',\n",
    "'如何利用Social Listening从社会化媒体中“提炼”有价值的信息？',\n",
    "'用大数据文本挖掘，来洞察“共享单车”的行业现状及走势',\n",
    "'从社交媒体传播和文本挖掘角度解读《欢乐颂2》',\n",
    "'不懂数理和编程，如何运用免费的大数据工具获得行业洞察？',\n",
    "'写给迷茫的你：如何运用运营思维规划自己的职业发展路径？',\n",
    "'如何用聚类分析进行企业公众号的内容优化',\n",
    "'傅园慧和她的“洪荒之力”的大数据舆情分析',\n",
    "'数据运营|数据分析中，文本分析远比数值型分析重要！（上）'\n",
    "        ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['数据挖掘 实操 ｜ 用 文本挖掘 剖析 近 5 万首 《 全唐诗 》',\n",
       " '以虎 嗅网 4W + 文章 的 文本挖掘 为例 ， 展现 数据分析 的 一整套 流程',\n",
       " '干货 ｜ 作为 一个 合格 的 “ 增长黑客 ” ， 你 还 得 重视 外部 数据 的 分析 ！',\n",
       " '文本挖掘 从小 白到 精通 （ 二 ） --- 语料库 和 词 向量 空间',\n",
       " '文本挖掘 从小 白到 精通 （ 三 ） --- 主题 模型 和 文本 数据 转换',\n",
       " '文本挖掘 从小 白到 精通 （ 一 ） --- 语料 、 向量 空间 和 模型 的 概念',\n",
       " '以 《 大秦 帝国 之 崛起 》 为例 ， 来谈 大数据 舆情 分析 和 文本挖掘',\n",
       " '文本 分类 算法 集锦 ， 从小 白到 大牛 ， 附 代码 注释 和 训练 语料',\n",
       " 'Social   Listening 和 传统 市场调研 的 关系 是 怎样 的 ？',\n",
       " '【 新 媒体 运营 实操 】 如何 做出 一个 精美 的 个性化 词云以 哈尔滨 冰雪 大 世界 旅游 的 传播效应 为例 ， 谈 数据 新闻 可视化 的 “ 魅惑 ”',\n",
       " '万字 干货 ｜ 10 款 数据分析 “ 工具 ” ， 助 你 成为 新 媒体 运营 领域 的 “ 增长黑客 ”',\n",
       " '如何 用 数据分析 ， 搞定 新 媒体 运营 的 定位 和 内容 初始化 ？',\n",
       " '当 数据分析 遭遇 心理 动力学 ： 用户 深层次 的 情感 需求 浮出 水面',\n",
       " '揭开 微博 转发 传播 的 规律 ： 以 “ 人民日报 ” 发布 的 G20 文艺晚会 微博为 例',\n",
       " '数据 运营 实操   |   如何 运用 数据分析 对 某个 试运营 项目 进行 “ 无 死角 ” 的 复盘 ？',\n",
       " '如何 利用微 信 后台 数据 优化 微信 运营',\n",
       " '如何 利用 Social   Listening 从 社会化 媒体 中 “ 提炼 ” 有 价值 的 信息 ？',\n",
       " '用 大数据 文本挖掘 ， 来 洞察 “ 共享 单车 ” 的 行业 现状及 走势',\n",
       " '从 社交 媒体 传播 和 文本挖掘 角度 解读 《 欢乐颂 2 》',\n",
       " '不 懂 数理 和 编程 ， 如何 运用 免费 的 大数据 工具 获得 行业 洞察 ？',\n",
       " '写给 迷茫 的 你 ： 如何 运用 运营 思维 规划 自己 的 职业 发展 路径 ？',\n",
       " '如何 用 聚类分析 进行 企业 公众 号 的 内容 优化',\n",
       " '傅园慧 和 她 的 “ 洪荒 之力 ” 的 大数据 舆情 分析',\n",
       " '数据 运营 | 数据分析 中 ， 文本 分析 远比 数值 型 分析 重要 ！ （ 上 ）']"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "documents = [' '.join(jieba.lcut(i)) for i in docs]\n",
    "documents "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[['数据挖掘', '实操', '｜', '文本挖掘', '剖析', '近', '5', '万首', '全唐诗'],\n",
      " ['以虎', '嗅网', '4w', '+', '文章', '文本挖掘', '为例', '展现', '数据分析', '一整套', '流程'],\n",
      " ['干货', '｜', '一个', '合格', '增长黑客', '重视', '外部', '数据', '分析'],\n",
      " ['文本挖掘', '从小', '白到', '精通', '---', '语料库', '词', '向量', '空间'],\n",
      " ['文本挖掘', '从小', '白到', '精通', '---', '主题', '模型', '文本', '数据', '转换'],\n",
      " ['文本挖掘', '从小', '白到', '精通', '---', '语料', '向量', '空间', '模型', '概念'],\n",
      " ['大秦', '帝国', '崛起', '为例', '来谈', '大数据', '舆情', '分析', '文本挖掘'],\n",
      " ['文本', '分类', '算法', '集锦', '从小', '白到', '大牛', '附', '代码', '注释', '训练', '语料'],\n",
      " ['social', 'listening', '传统', '市场调研', '关系'],\n",
      " ['新',\n",
      "  '媒体',\n",
      "  '运营',\n",
      "  '实操',\n",
      "  '做出',\n",
      "  '一个',\n",
      "  '精美',\n",
      "  '个性化',\n",
      "  '词云以',\n",
      "  '哈尔滨',\n",
      "  '冰雪',\n",
      "  '世界',\n",
      "  '旅游',\n",
      "  '传播效应',\n",
      "  '为例',\n",
      "  '谈',\n",
      "  '数据',\n",
      "  '新闻',\n",
      "  '可视化',\n",
      "  '魅惑'],\n",
      " ['万字', '干货', '｜', '10', '款', '数据分析', '工具', '助', '新', '媒体', '运营', '领域', '增长黑客'],\n",
      " ['数据分析', '搞定', '新', '媒体', '运营', '定位', '内容', '初始化'],\n",
      " ['数据分析', '遭遇', '心理', '动力学', '用户', '深层次', '情感', '需求', '浮出', '水面'],\n",
      " ['揭开', '微博', '转发', '传播', '规律', '人民日报', '发布', 'g20', '文艺晚会', '微博为', '例'],\n",
      " ['数据', '运营', '实操', '数据分析', '试运营', '项目', '无', '死角', '复盘'],\n",
      " ['利用微', '信', '后台', '数据', '优化', '微信', '运营'],\n",
      " ['利用', 'social', 'listening', '社会化', '媒体', '提炼', '价值', '信息'],\n",
      " ['大数据', '文本挖掘', '洞察', '共享', '单车', '行业', '现状及', '走势'],\n",
      " ['社交', '媒体', '传播', '文本挖掘', '角度', '解读', '欢乐颂', '2'],\n",
      " ['懂', '数理', '编程', '免费', '大数据', '工具', '行业', '洞察'],\n",
      " ['写给', '迷茫', '运营', '思维', '规划', '职业', '发展', '路径'],\n",
      " ['聚类分析', '企业', '公众', '号', '内容', '优化'],\n",
      " ['傅园慧', '洪荒', '之力', '大数据', '舆情', '分析'],\n",
      " ['数据', '运营', '数据分析', '文本', '分析', '远比', '数值', '型', '分析']]\n"
     ]
    }
   ],
   "source": [
    "# 去停用词\n",
    "stoplist = [i.strip() for i in open('chineseStopWords.txt',encoding='utf-8').readlines()]\n",
    "texts = [[word for word in document.lower().split() if word not in stoplist]\n",
    "for document in documents]\n",
    "\n",
    "pprint(texts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-11-10 21:00:12,246 : INFO : adding document #0 to Dictionary(0 unique tokens: [])\n",
      "2020-11-10 21:00:12,250 : INFO : built Dictionary(153 unique tokens: ['5', '万首', '全唐诗', '剖析', '实操']...) from 24 documents (total 223 corpus positions)\n"
     ]
    }
   ],
   "source": [
    "\n",
    "dictionary = corpora.Dictionary(texts)\n",
    "corpus = [dictionary.doc2bow(text) for text in texts]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[[(0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1)],\n",
       " [(6, 1),\n",
       "  (9, 1),\n",
       "  (10, 1),\n",
       "  (11, 1),\n",
       "  (12, 1),\n",
       "  (13, 1),\n",
       "  (14, 1),\n",
       "  (15, 1),\n",
       "  (16, 1),\n",
       "  (17, 1),\n",
       "  (18, 1)],\n",
       " [(8, 1),\n",
       "  (19, 1),\n",
       "  (20, 1),\n",
       "  (21, 1),\n",
       "  (22, 1),\n",
       "  (23, 1),\n",
       "  (24, 1),\n",
       "  (25, 1),\n",
       "  (26, 1)]]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "# 查看词袋表示中的部分数据\n",
    "list(corpus)[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-11-10 21:00:24,953 : INFO : using serial LSI version on this node\n",
      "2020-11-10 21:00:24,958 : INFO : updating model with new documents\n",
      "2020-11-10 21:00:24,960 : INFO : preparing a new chunk of documents\n",
      "2020-11-10 21:00:24,963 : INFO : using 100 extra samples and 100 power iterations\n",
      "2020-11-10 21:00:24,966 : INFO : 1st phase: constructing (153, 110) action matrix\n",
      "2020-11-10 21:00:24,971 : INFO : orthonormalizing (153, 110) action matrix\n",
      "2020-11-10 21:00:25,462 : INFO : 2nd phase: running dense svd on (110, 24) matrix\n",
      "2020-11-10 21:00:25,465 : INFO : computing the final decomposition\n",
      "2020-11-10 21:00:25,469 : INFO : keeping 10 factors (discarding 35.082% of energy spectrum)\n",
      "2020-11-10 21:00:25,472 : INFO : processed documents up to #24\n",
      "2020-11-10 21:00:25,476 : INFO : topic #0(5.349): 0.362*\"运营\" + 0.330*\"数据\" + 0.257*\"数据分析\" + 0.252*\"文本挖掘\" + 0.244*\"媒体\" + 0.211*\"新\" + 0.194*\"分析\" + 0.177*\"实操\" + 0.166*\"为例\" + 0.154*\"从小\"\n",
      "2020-11-10 21:00:25,480 : INFO : topic #1(4.877): 0.361*\"文本挖掘\" + 0.344*\"白到\" + 0.344*\"从小\" + 0.282*\"精通\" + 0.282*\"---\" + -0.219*\"运营\" + 0.196*\"向量\" + 0.196*\"空间\" + 0.190*\"模型\" + 0.166*\"语料\"\n",
      "2020-11-10 21:00:25,483 : INFO : topic #2(3.909): -0.374*\"分析\" + -0.308*\"数据分析\" + -0.231*\"大数据\" + 0.161*\"魅惑\" + 0.161*\"谈\" + 0.161*\"旅游\" + 0.161*\"世界\" + 0.161*\"个性化\" + 0.161*\"词云以\" + 0.161*\"传播效应\"\n",
      "2020-11-10 21:00:25,489 : INFO : topic #3(3.731): 0.347*\"文本挖掘\" + 0.331*\"大数据\" + 0.267*\"为例\" + -0.200*\"运营\" + -0.176*\"数据分析\" + -0.171*\"文本\" + 0.170*\"行业\" + 0.170*\"洞察\" + 0.162*\"舆情\" + -0.129*\"白到\"\n",
      "2020-11-10 21:00:25,496 : INFO : topic #4(3.575): 0.434*\"分析\" + -0.304*\"媒体\" + 0.302*\"数据\" + 0.193*\"文本\" + -0.177*\"数据分析\" + -0.170*\"新\" + -0.169*\"文本挖掘\" + -0.143*\"工具\" + -0.135*\"领域\" + -0.135*\"助\"\n"
     ]
    }
   ],
   "source": [
    "lsi = models.LsiModel(\n",
    "         corpus, \n",
    "         id2word=dictionary,\n",
    "         power_iters=100,\n",
    "         num_topics=10\n",
    "         )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('文本挖掘从小白到精通（二）---语料库和词向量空间', 0.5086862826188445),\n",
      " ('以虎嗅网4W+文章的文本挖掘为例，展现数据分析的一整套流程', 0.3806696323333516),\n",
      " ('数据挖掘实操｜用文本挖掘剖析近5万首《全唐诗》', 0.29267533923322625),\n",
      " ('【新媒体运营实操】如何做出一个精美的个性化词云以哈尔滨冰雪大世界旅游的传播效应为例，谈数据新闻可视化的“魅惑”',\n",
      "  0.10345427183059394),\n",
      " ('文本分类算法集锦，从小白到大牛，附代码注释和训练语料', 0.08753162212735338),\n",
      " ('以《大秦帝国之崛起》为例，来谈大数据舆情分析和文本挖掘', 0.006311710368806596),\n",
      " ('文本挖掘从小白到精通（三）---主题模型和文本数据转换', -0.038144932699899076),\n",
      " ('文本挖掘从小白到精通（一）---语料、向量空间和模型的概念', -0.047520865887382385),\n",
      " ('Social Listening和传统市场调研的关系是怎样的？', -0.09254271821008489),\n",
      " ('干货｜作为一个合格的“增长黑客”，你还得重视外部数据的分析！', -0.2616186423095789)]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "#查询语句为“文本挖掘在舆情口碑挖掘中的作用很大” \n",
    "doc = \"文本挖掘 在 舆情 口碑 挖掘 中 的 作用 很大 \"\n",
    "vec_bow = dictionary.doc2bow(doc.lower().split())\n",
    "vec_lsi = lsi[vec_bow]      #将查询语句转换到LSI向量空间\n",
    "\n",
    "\n",
    "result = [(docs[i[0]],i[1]) for i in vec_lsi]\n",
    "pprint(sorted(result,key=lambda x: x[1],reverse=True))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-11-10 21:00:39,931 : WARNING : scanning corpus to determine the number of features (consider setting `num_features` explicitly)\n",
      "2020-11-10 21:00:39,938 : INFO : creating matrix with 24 documents and 10 features\n"
     ]
    }
   ],
   "source": [
    "\n",
    "index = similarities.MatrixSimilarity(lsi[corpus])  #将查询语料库转换到LSI向量空间并对其中的每个文档/语句建立索引\n",
    "#内存友好型接口\n",
    "#index = similarities.Similarity(output_prefix='Similarity',corpus=lsi[corpus],num_features=500)  #将查询语料库转换到LSI向量空间并对其中的每个文档/语句建立索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-11-10 21:00:47,454 : INFO : saving MatrixSimilarity object under C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\查询.index, separately None\n",
      "2020-11-10 21:00:47,461 : INFO : saved C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\查询.index\n",
      "2020-11-10 21:00:47,463 : INFO : loading MatrixSimilarity object from C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\查询.index\n",
      "2020-11-10 21:00:47,466 : INFO : loaded C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\查询.index\n"
     ]
    }
   ],
   "source": [
    "\n",
    "index.save(os.path.join(TEMP_FOLDER, '查询.index'))\n",
    "index = similarities.MatrixSimilarity.load(os.path.join(TEMP_FOLDER, '查询.index'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('以《大秦帝国之崛起》为例，来谈大数据舆情分析和文本挖掘', 0.8408196),\n",
      " ('用大数据文本挖掘，来洞察“共享单车”的行业现状及走势', 0.6184421),\n",
      " ('以虎嗅网4W+文章的文本挖掘为例，展现数据分析的一整套流程', 0.6141988),\n",
      " ('从社交媒体传播和文本挖掘角度解读《欢乐颂2》', 0.60966927),\n",
      " ('傅园慧和她的“洪荒之力”的大数据舆情分析', 0.53882986),\n",
      " ('文本挖掘从小白到精通（二）---语料库和词向量空间', 0.538046),\n",
      " ('数据挖掘实操｜用文本挖掘剖析近5万首《全唐诗》', 0.52751553),\n",
      " ('文本挖掘从小白到精通（一）---语料、向量空间和模型的概念', 0.50075185),\n",
      " ('文本挖掘从小白到精通（三）---主题模型和文本数据转换', 0.4814158),\n",
      " ('不懂数理和编程，如何运用免费的大数据工具获得行业洞察？', 0.257924),\n",
      " ('数据运营|数据分析中，文本分析远比数值型分析重要！（上）', 0.15533471),\n",
      " ('干货｜作为一个合格的“增长黑客”，你还得重视外部数据的分析！', 0.13486362),\n",
      " ('Social Listening和传统市场调研的关系是怎样的？', 0.12148525),\n",
      " ('如何利用Social Listening从社会化媒体中“提炼”有价值的信息？', 0.111916065),\n",
      " ('揭开微博转发传播的规律：以“人民日报”发布的G20文艺晚会微博为例', 0.029873027),\n",
      " ('【新媒体运营实操】如何做出一个精美的个性化词云以哈尔滨冰雪大世界旅游的传播效应为例，谈数据新闻可视化的“魅惑”', 0.014308496),\n",
      " ('万字干货｜10款数据分析“工具”，助你成为新媒体运营领域的“增长黑客”', -0.043952435),\n",
      " ('文本分类算法集锦，从小白到大牛，附代码注释和训练语料', -0.058210425),\n",
      " ('数据运营实操 | 如何运用数据分析对某个试运营项目进行“无死角”的复盘？', -0.063265055),\n",
      " ('如何用数据分析，搞定新媒体运营的定位和内容初始化？', -0.06907134),\n",
      " ('当数据分析遭遇心理动力学：用户深层次的情感需求浮出水面', -0.08100625),\n",
      " ('如何利用微信后台数据优化微信运营', -0.13054368),\n",
      " ('如何用聚类分析进行企业公众号的内容优化', -0.14364973),\n",
      " ('写给迷茫的你：如何运用运营思维规划自己的职业发展路径？', -0.19269097)]\n"
     ]
    }
   ],
   "source": [
    "sims = index[vec_lsi]   \n",
    "result = [(docs[i[0]],i[1]) for i in enumerate(sims)]            # 对检索语料库进行相似度查询\n",
    "pprint(sorted(result ,key=lambda x: x[1],reverse=True))          # 每个查询结果的格式是 (语句， 与查询语句的相似度) ，是一个2元元组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
